home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / windows / fullv.zip / FULLVIEW.DOC < prev    next >
Text File  |  1992-02-09  |  38KB  |  814 lines

  1.                 ********************************
  2.                 *           FULLVIEW           *
  3.                 *              5.0             *
  4.                 *                              *
  5.                 *              by              *
  6.                 *                              *
  7.                 *       Patrick A. Toulme      *
  8.                 *  Copyright -  January, 1992  *
  9.                 *        Patents Pending       *
  10.                 *      All Rights Reserved     *
  11.                 ********************************
  12.  
  13.  
  14. ================================================================
  15.  
  16. THIS IS A FULLY FUNCTIONAL DEMONSTRATION COPY OF THE FULLVIEW
  17. UTILITY -- IT FUNCTIONS IDENTICALLY TO THE LICENSED VERSION OF
  18. FULLVIEW WITH THE FOLLOWING EXCEPTIONS:
  19.  
  20. 1)  FILE WRITES WILL ALWAYS BE 64 BYTES LONG.
  21. 2)  YOU MAY NOT PERFORM "NEXT SEARCHES" AND YOU 
  22.     MAY NOT IMPLODE CONTROL.
  23. 3)  SOME AREAS OF CONVENTIONAL MEMORY ARE TEMPORARILY PREVENTED
  24.     FROM BEING VIEWED, SOME AREAS OF EXTENDED MEMORY ARE ALWAYS
  25.     PREVENTED FROM BEING VIEWED.
  26. ================================================================
  27.  
  28.  
  29.  
  30. I.   INTRODUCTION.    
  31.  
  32.  
  33.     FULLVIEW has been designed to aid both the novice user,
  34. through the experienced "power user," all the way up to the
  35. software-code writer and the computer hardware technician. 
  36. FULLVIEW has the ability to perform functions that, until now,
  37. were only possible with expensive hardware-based products and
  38. custom memory software.  And truthfully, FULLVIEW is easier to
  39. use and performs more useable functions.  In fact, the more I
  40. work with FULLVIEW, the more possibilities I see for its use.  I
  41. now look at FULLVIEW as an indispensable utility for working with
  42. DOS and Windows based personal computers.  I'm sure you will see
  43. as many uses for FULLVIEW as I do as you implement it, and work
  44. with it, in your own fashion.
  45.  
  46.  
  47.  
  48. II.  WHAT IS FULLVIEW?
  49.  
  50.     FULLVIEW is a ticket to the entire memory structure of the
  51. personal computer.  FULLVIEW outperforms any currently available
  52. memory viewing utility in that it will allow you to actually see,
  53. change, search, and work with all of your memory --all the way up
  54. to 16 megabytes of RAM.  You can actually view the contents of
  55. conventional RAM, expanded memory page frames, ROM, and even
  56. extended memory -- all in REAL TIME and all at the touch of a
  57. key.  FULLVIEW is the perfect complement to any user, programmer,
  58. or developer's utility/memory/debugging software.
  59.  
  60.     FULLVIEW is a well-behaved TSR, just about 20k in size, and
  61. has been written completely in assembly language for speed, and,
  62. after installation, uses NO DOS CALLS (actually, it uses one, one
  63. time) and only direct low-level BIOS calls.  This fact is of
  64. critical importance since it allows the user to "hotkey" into
  65. FULLVIEW at any time -- even while another program is in the
  66. middle of loading, printing, executing, changing memory,
  67. executing Read-Only-Memory, writing to the screen, writing to a
  68. disk, or being manipulated by a debugger (FULLVIEW is compatible
  69. with all major debuggers -- even those that operate in Virtual-86
  70. mode), or most anything else a program can do. . . including
  71. decompress, de-copy protect, and decrypt itself.  And what's
  72. more, when you exit from FULLVIEW, the program that you
  73. interrupted will continue with its execution without missing a
  74. beat -- in fact, it will never even know that it has been
  75. interrupted.
  76.  
  77.     Another advantage of FULLVIEW's use of pure machine language
  78. is that FULLVIEW takes all its information directly from the
  79. registers, the stack, and direct memory reads of your system --
  80. FULLVIEW is not fooled by malfunctioning (or intentionally
  81. deceptive) interrupt handlers.  What you see with FULLVIEW is
  82. what's actually there.
  83.  
  84.  
  85.  
  86. III.  INSTALLATION.
  87.  
  88.     FULLVIEW is fully compatible with DOS Version 5.0 and may be
  89. loaded "high" above 640k in the Upper Memory Blocks (UMBs) of a
  90. 386-based machine.  When FULLVIEW is loaded high (by using the
  91. DOS command LH, the user will be able to view it in two places: 
  92. 1)  The re-mapped location above the 640k barrier (say, at
  93. segment D132, for instance); and 2) The "true" location in
  94. extended memory.  Of course, FULLVIEW allows you to observe both
  95. locations, as the code changes, in real time.  FULLVIEW is also
  96. fully compatible with Windows 3.0 and may be loaded and run in
  97. multiple windows (included on this disk are two Windows related
  98. files, WIN-FVW.BAT and WIN-FVW.PIF -- the batch file is set up
  99. for color installation, if you have a monochrome monitor you
  100. should change the /C to a /M).
  101.     FULLVIEW prefers to be the first TSR that is loaded, but
  102. this is not mandatory for FULLVIEW's effectiveness.  When
  103. FULLVIEW is installed, it modifies its own code to work best with
  104. your system's BIOS, memory, and hardware.  In addition, FULLVIEW
  105. performs a brief self-integrity check.  The only user defined
  106. input that FULLVIEW requires is a command line parameter telling
  107. FULLVIEW whether your system has a color graphics video card
  108. (CGA,EGA,VGA,MCGA), or a monochrome video card
  109. (MDA,Hercules,Mono-VGA/EGA).  FULLVIEW uses this information to
  110. place characters directly into video memory, thus bypassing DOS
  111. and the BIOS.  Screen output is virtually instantaneous -- you
  112. would settle for nothing less, since FULLVIEW updates itself
  113. constantly in real time.  Put another way, you can actually see
  114. your memory changing as it's changing -- right before your eyes. 
  115. And it continues to do this regardless of whether it's above or
  116. below the DOS 1 megabyte barrier.  Programming real-time viewing
  117. of extended memory from a TSR is a logistical nightmare
  118. (especially in Virtual-86 mode!), but the results are worth it. 
  119. In fact, once you work with FULLVIEW you won't be able to work
  120. again without it.    
  121.  
  122. A Caveat:  If you have one of the old, original IBM-CGA
  123. cards, you might experience "chromablizzard," which
  124. occurs due to trace intervals.  If you see "snow"
  125. across your screen while displaying FULLVIEW, don't
  126. blame FULLVIEW, blame your card, then buy a better one
  127. for about $20.    
  128.  
  129. The syntax for installation for a color card is:       
  130.                       FULLVIEW /C
  131.  
  132. The syntax for installation for a monochrome card is:  
  133.                       FULLVIEW /M
  134.  
  135.     FULLVIEW will advise you if it has been installed correctly,
  136. or, if no parameter is entered, it will display a short screen
  137. reminding you to include a /C or /M.
  138.  
  139.  
  140.  
  141. IV.  ACCESSING AND EXITING FULLVIEW.
  142.  
  143.     Once FULLVIEW has been installed, you may "hotkey" into it
  144. AT ANY TIME by hitting Control-V.  A note of caution, if you
  145. attempt to access FULLVIEW, which operates in text mode, from an
  146. application program that is operating in graphics mode, you will
  147. hear a short tone and FULLVIEW will not appear.  This does not
  148. mean that you can not access FULLVIEW from a graphics program, it
  149. just means you will either have to "Implode Control," which will
  150. be described later, or, simply hold the Right-Shift key down as
  151. you hotkey.  Doing this will override the present graphics mode
  152. and allow you to enter FULLVIEW.  However, the screen graphics
  153. will not be saved.  But, as a rule, this is not of significant
  154. importance since most graphics programs tend to update the screen
  155. graphics quite frequently.  
  156.  
  157.     To exit FULLVIEW, and return to the executing program,
  158. simply hit Escape.      
  159.  
  160.     Once FULLVIEW is activated, the screen will be filled with
  161. three separate areas:  The Address Area; The Hexadecimal Memory
  162. Area; and The Ascii Memory Area.  All are being updated several
  163. times a second, as you view them.  At the bottom of the screen is
  164. a list of FULLVIEW's most commonly used commands.
  165.  
  166.  
  167.  
  168. V.  WORKING WITH FULLVIEW.
  169.  
  170.      There are fourteen memory scrolling functions that will
  171. allow you to walk through your conventional, video, ROM-BIOS
  172. memory, expanded memory page frame, and even extended memory, or
  173. jump to a specific point in any of that memory.  The commands are
  174. as follows: 
  175.  
  176. Up Arrow ------- Move 16 bytes (a paragraph) toward low memory.
  177. Down Arrow ----- Move 16 bytes (a paragraph) toward upper memory.
  178. Left Arrow ----- Move 1 byte toward low memory.
  179. Right Arrow ---- Move 1 byte toward upper memory.
  180. Page Up -------- Move one screen-full toward low memory.
  181. Page Down ------ Move one screen-full toward high memory.
  182. Home ----------- Jump to 0000:0000 (the beginning of the Megabyte
  183.                  that you are viewing).  Successive taps on the
  184.                  HOME key will advance you back through the
  185.                  Megabytes one at a time.              
  186. End ------------ Jump to F000:FEB0 (the end of the Megabyte that
  187.                  you are viewing).  Successive taps on the END
  188.                  key will advance you up through the Megabytes
  189.                  one at a time.
  190. J -------------- Jump to a user-defined, specific hexadecimal
  191.                  segment:offset in the currently viewed 
  192.                  megabyte (a FAR jump to programmers).
  193. X -------------- Jump to an entirely different megabyte in 
  194.                  memory (you couldn't even do this, until now).
  195. Ctrl+Page Up --- Move to the beginning of the currently viewed
  196.                  segment; after that, move toward low memory
  197.                  in 64k chunks at a time.
  198. Ctrl+Page Down - Move to the end of the currently viewed
  199.                  segment; after that, move toward high memory
  200.                  in 64k chunks at a time.
  201. Ctrl+Home ------ Jump to the lowest point in memory (0000:0000
  202.                  in conventional memory.)
  203. Ctrl+End ------- Jump to the highest point in memory (the end of
  204.                  what would be the 15th extended memory meg - you
  205.                  probably don't have that much memory installed).
  206.  
  207.  
  208.  
  209.     As you scroll through, or jump through, memory, the actual
  210. hexadecimal bytes, and the ascii representation of that memory,
  211. will change accordingly.  In addition, as you scroll, the
  212. individual byte addresses at the top of the screen and the
  213. segment:offset addresses to the left of the screen will also
  214. change.  This allows the user to easily obtain an accurate
  215. address for the point of memory he is observing.  In addition,
  216. the far left side of the screen displays a vertical bar with a
  217. moving arrow that  represents the position in the total memory
  218. structure that is currently being viewed.  The full-white portion
  219. of the bar represents conventional memory, the lighter-white
  220. portion represents the extended memory that is installed on the
  221. machine, and the large "dots" represent empty memory areas in the
  222. full 16 megabyte spectrum.  If you scroll through the end of a
  223. Megabyte, you will not "wrap-around" to the beginning of that
  224. same Megabyte, but instead will continue on into the next
  225. corresponding Megabyte in a true linear fashion (unless you have
  226. 8088-based hardware, then wrapping around will occur, since there
  227. is no possibility of extended memory).  The heading "CONVENT'L"
  228. (meaning you are in conventional memory under 1 Megabyte) will
  229. then change to indicate the extended memory megabyte that you are
  230. now viewing.  Of course, the hexadecimal values and ascii values
  231. are being updated to the screen constantly, regardless of whether
  232. the user is scrolling or not.  And if you're wondering how your
  233. viewing actual, live, and constantly changing extended memory,
  234. while in real mode, it's because FULLVIEW is flying you in and
  235. out of a protected mode environment several times a second -- all
  236. behind the scenes of course, and all without disturbing the
  237. integrity of the program that it interrupted.
  238.  
  239.  
  240.  
  241. VI.  OPERATIONAL COMMANDS.    
  242.  
  243. There are eight operational commands that are displayed at the
  244. bottom of the FULLVIEW main screen; each one will be described in
  245. a bit more detail.  All of these commands work the same way,
  246. regardless of whether you are viewing conventional memory or
  247. extended memory.  And, as a rule, hitting the escape key, as
  248. opposed to providing a correct numerical input, will generally
  249. cancel any operation and return you up through the screens to the
  250. FULLVIEW main screen.  Entering "RETURN" in response to a "Yes or
  251. No?" is interpreted as a "No."  If FULLVIEW is requesting that
  252. you enter a segment and offset address, you may hit the space-bar
  253. to automatically input the currently viewed segment:offset (this
  254. function is not available on Jump requests, however).
  255.  
  256.  
  257.     The common operational commands are:
  258.  
  259.  
  260. (S) Memory Search ----  for searching memory.
  261. (N) Next Search ------  for searching memory again.
  262. (M) Change Memory ----  for writing directly into memory.
  263. (F) Write to File ----  for writing memory to a disk file.
  264. (I) Ints and Ports ---  for working with interrupts and ports.
  265. (R) Return Address ---  reports the exact point of return.
  266. (P) Prepare Prtscr ---  for stripping control characters.
  267. (C) Crash to DOS -----  for exiting a program, the hard way.     
  268.             
  269.  
  270. Search Memory:
  271.  
  272.     This commands allows you to search the currently viewed
  273. megabyte for a hexadecimal or case-sensitive text string up to 30
  274. characters long.  Simply hit "S" and respond to the hex or text
  275. prompt, and then enter your string.  When you hit return, memory
  276. will be searched, starting at the point in memory that the user
  277. is presently viewing, and any matching string will be displayed
  278. by FULLVIEW.  To find the next occurrence of the same string, use
  279. NEXT SEARCH.  If you are searching conventional memory, and
  280. FULLVIEW determines that the High Memory Area is accessible to
  281. DOS (meaning the A20 Gate is open), FULLVIEW will also search the
  282. HMA for the search-string.  If found, FULLVIEW will display the
  283. string as addressed by segment value FFFF.
  284.  
  285.     One point on searches:  FULLVIEW's searching algorithm
  286. relies on the uniqueness of the first byte of the string for its
  287. speed.  Hexadecimal search strings beginning with 00 or FF will
  288. be noticeably slower than other strings since these two bytes are
  289. the most frequently encountered.  Fortunately, the user will
  290. rarely (if ever) need to begin a search string with either of
  291. these two bytes.  But experiment for yourself -- you can always
  292. suspend the search by hitting F1.
  293.  
  294.  
  295. Next Search:
  296.  
  297.     Finds the next occurrence of a string after SEARCH MEMORY
  298. has found the first.  There are no inputs, just hit "N".  Like
  299. the SEARCH function, searching begins at the point in memory that
  300. is being viewed.  If there are no more occurrences of the string
  301. within that megabyte, a double-tone will sound and the user will
  302. be advised that the string has not been found.
  303.  
  304.  
  305. Change Memory:    
  306.  
  307.     This command allows you to write directly into memory at
  308. whatever Megabyte you are currently viewing, and of course,
  309. observe it being updated in real time as you enter it.  When you
  310. hit "M" you will be prompted for a segment:offset in which the
  311. memory will be entered (the space bar will enter the currently
  312. viewed segment and offset for you) - you will then be asked
  313. whether the input will be in hexadecimal or text format.  After
  314. this, you simply begin inputting either the text or hex values
  315. that you would like placed in memory - just hit RETURN when
  316. you're through.  If FULLVIEW is displaying the same memory
  317. location that you are changing, you will see the updates "on the
  318. fly" as they are inserted into RAM.  If you feel like writing
  319. directly into video memory, you will see the image displayed on
  320. your screen for an instant, and then the FULLVIEW display screen
  321. will re-appear -- FULLVIEW takes priority over most everything,
  322. including direct video memory screen writes.
  323.  
  324.  
  325. Write to File:    
  326.  
  327.     This command allows you to write a portion of memory to a
  328. disk file.  Upon hitting "F" you will be asked to input three
  329. variables:  The segment, offset, and length of the memory that
  330. you would like written to disk.  Once again, the space bar will
  331. input the currently viewed segment:offset address for you, and
  332. for the length, you may use the cursor keys to scroll through
  333. memory as opposed to actually typing in the length of the file
  334. write (FULLVIEW displays the length of the write as you scroll). 
  335. After this, you will be asked to provide the filename that
  336. FULLVIEW will use when it creates and writes the file.  If the
  337. file you name is already in existence, FULLVIEW will write to the
  338. end of that file.  Here is the only time that FULLVIEW uses DOS
  339. -- and, of course, there is always the chance of a DOS-memory
  340. related problem when using DOS from a behind-the-scenes TSR like
  341. FULLVIEW.  If FULLVIEW determines that DOS is unstable, it will
  342. alert the user with a tone and message and then give the user the
  343. option of "forcing" the DOS disk write (which usually works, and
  344. is quite safe).  However, returning to a DOS executing program
  345. after forcing a DOS disk write is a matter of luck.  But, even if
  346. DOS does hang you after trying to return, you should still have
  347. the disk file intact.  Should any other problems come up during
  348. the disk write, FULLVIEW will let you know, and, if the file
  349. write is successful, FULLVIEW will let you know that as well.  An
  350. interesting point -- FULLVIEW, when executing a FileWrite
  351. request, "undercuts" DOS and BIOS.  If you have installed an
  352. interrupt monitoring TSR over FULLVIEW, like the "Write-Protect
  353. Your Hard Disk" programs, FULLVIEW will execute the function
  354. "underneath" the monitoring software, which will, of course, be
  355. unaware of FULLVIEW's operation.
  356.  
  357.  
  358. Ints and Ports:
  359.  
  360.     This command provides the exact segment:offset vector
  361. address for interrupts as they appear in low memory -- not as
  362. they are reported by DOS.  After you hit "I" you will be asked
  363. for the number of the interrupt, FULLVIEW will then report its
  364. address and ask if you would like to change it.  If so, the user
  365. is prompted for a segment:offset address and that address is
  366. inserted into low memory.  If you would like a report on the
  367. entire interrupt vector table, simply hit F1 instead of inputting
  368. an interrupt number.  If you would like the report directed to
  369. the printer instead of the screen use F10.  FULLVIEW will then
  370. prompt you to prepare your printer and will output the entire
  371. table for you.  
  372.  
  373.      Hitting F2 will provide a screen that shows the current byte
  374. values at each of the hardware ports -- they are shown in real
  375. time.  On very, very rare occasions, reading from a hardware port
  376. will hang the system (I've only found a couple of cards that can
  377. cause trouble, one was an unusual network card, the other a video
  378. card).  If attempting to scroll through the hardware ports locks
  379. the system up, or disrupts the screen colors, you must include a
  380. notation in the FULLVIEW.CFG file telling FULLVIEW not to read
  381. from that port, and instead, return the "??" symbol instead of a
  382. byte value.  If you run in to this problem, I'd appreciate it if
  383. you'd drop me a note telling me the card that caused it.
  384.  
  385.      Hitting F3 will provide a listing of the current hardware
  386. IRQ (Interrupt Request) addresses -- FULLVIEW ties in to the two
  387. highest priority IRQs, IRQ 0 and IRQ 1.  FULLVIEW will also
  388. indicate if the IRQ is presently enabled.
  389.  
  390.  
  391. Return Address:    
  392.  
  393.     This command reports the exact point in conventional memory
  394. (both segment and offset) from which you hotkeyed out of, and to
  395. which you will return, after exiting FULLVIEW.
  396.  
  397.  
  398. Prepare PrtScr:
  399.  
  400.     This command really performs two functions:  1)  It 
  401. instantly strips graphics characters from the ascii portion of
  402. memory on the screen to allow for easy text-character viewing and
  403. the easy use of Shft-PrtScr to dump a screen-full of memory to
  404. your printer; and 2)  It "freezes" FULLVIEW from constantly
  405. updating itself so that you may take your time in examining
  406. memory that is otherwise constantly changing.  To return FULLVIEW
  407. to its normal state, simply hit any key (other than Shft-PrtScr,
  408. of course).
  409.  
  410.  
  411. Crash to DOS:
  412.  
  413.     This command allows you to break out of most programs (even
  414. "hung" programs), and it will return an error code (0FFH) to the
  415. parent program that executed the child program (usually DOS
  416. itself).  Simply hit "C" and confirm your wish to crash out.
  417.  
  418.  
  419. VII.  OTHER OPERATIONAL COMMANDS
  420.  
  421.     There are three additional operational commands that are
  422. used less frequently, and thus, are not displayed at the bottom
  423. of FULLVIEW's main screen.  These additional commands are as
  424. follows:
  425.  
  426. !  -- This command cleans memory by overwriting the word value
  427.       "++" beginning at the first unallocated memory control
  428.       in memory.  Only conventional memory is cleaned; extended
  429.       memory is not cleaned.  If FULLVIEW detects critical
  430.       interrupt routines located within the to-be-cleaned area,
  431.       FULLVIEW will advise you of such and refuse to clean
  432.       memory.  After cleaning memory, exiting FULLVIEW will
  433.       return you to the DOS prompt.  Cleaning memory is handy
  434.       in determining where a program loads its code and how
  435.       much memory the program actually consumed (just clean
  436.       memory right before you execute a program, then hotkey
  437.       into memory and view what has been changed.)
  438.  
  439. F5 -- This key toggles Liquid Crystal Diode (LCD) mode for 
  440.       better performance on laptops and some monochrome monitors.
  441.       LCD mode offers black and white video contrast and a 
  442.       larger, easier-to-see cursor.  Occasionally, hotkeying
  443.       out of a program that is continually monitoring screen
  444.       writes will cause a conflict with FULLVIEW's colors,
  445.       if this happens try toggling into LCD mode to override
  446.       the conflict.
  447.  
  448. F6 -- This key will toggle FULLVIEW's full keyboard interrupt
  449.       control if another program has taken priority over that
  450.       interrupt and is interfering with FULLVIEW's scrolling
  451.       abilities.  Normally, FULLVIEW will have first control
  452.       over the keyboard interrupt.  However, some programs,
  453.       while executing, will take control of this interrupt
  454.       and prevent consistent scrolling while viewing FULLVIEW.
  455.       In such a case, you may toggle FULLVIEW's control to
  456.       restore the consistent scrolling.  Upon exit, FULLVIEW
  457.       will automatically restore the interrupt condition to
  458.       its original placement -- you do not have to remember
  459.       to do it.  If FULLVIEW detects that the conflicting
  460.       program is continually upgrading its keyboard interrupt
  461.       handling (like some versions of SideKick will do),
  462.       FULLVIEW will not upgrade its keyboard priority.
  463.  
  464.  
  465.  
  466. VIII.  IMPLODING CONTROL.
  467.  
  468.     Actually, an entire (and lengthy) DOC file could be written
  469. on nifty ways to use the Implode Control feature of FULLVIEW to
  470. accomplish an otherwise insurmountable task.  However, I have
  471. always felt that brevity should be enjoined as an outstanding
  472. characteristic of DOC files -- so with that in mind, the
  473. following should suffice:  
  474.  
  475.     "Imploding Control" does just that -- it turns full control
  476. of the system over to FULLVIEW and the user, even if the keyboard
  477. has been shut off, the interrupt vectors altered, and the bios
  478. areas scrambled by the executing program.  
  479.  
  480.     The command key to implement the Implode Control function is
  481. the asterisk ("*") -- this command is not mentioned on the
  482. command list at the bottom of the screen.  When you summon the
  483. Implosion Control feature, you will be asked to input an "Implode
  484. Control Factor" which is the time delay after which FULLVIEW will
  485. take full control of the system, and, of course, turn this
  486. control over to the user.  This time delay may be up to 999
  487. seconds.  After inputting this delay factor, FULLVIEW will ask
  488. whether it should, if you happen to be imploding out of graphics
  489. mode, to attempt to store the video graphics in UNPROTECTED upper
  490. conventional memory -- it really isn't necessary to save the
  491. graphics as they tend to be updated regularly by most programs,
  492. however, the option is there if you wish.  Just realize that
  493. there is always the possibility that the graphics storage might
  494. plaster over some memory that is in use and cause the system to
  495. hang.  If you elect to make the choice to try and save graphics
  496. and, at the moment of implosion, are not in a graphics mode,
  497. FULLVIEW will detect that situation and will not attempt to make
  498. any storage for the non-existent graphics.
  499.  
  500.     Once you have set the Implosion-Delay, you simply ESC back
  501. to the executing program and allow it to continue to run
  502. normally.  The audible time delay "tick-off" only occurs while
  503. the executing program has control, not while FULLVIEW is in
  504. control -- so there's no rush.  When the time delay factor has
  505. expired, a tone will sound and the execution of that program will
  506. "freeze" in its tracks.  Behind the scenes, FULLVIEW has restored
  507. the necessary areas needed to allow complete access and use of
  508. FULLVIEW back to the same condition as when you selected Implode
  509. Control -- just Control-V into it and you're off. . .  You may
  510. ESC back to the frozen screen at any time to review it and then
  511. Control-V back into FULLVIEW for another round.  When you are
  512. ready for the executing program to continue its operation, just
  513. exit FULLVIEW and touch any key to return control to the
  514. executing program -- it will never know it's been interrupted and
  515. viewed (and maybe changed by you, or copied to a disk file) and
  516. everything will be returned to its state prior to Implosion
  517. (including any keystrokes that were already in the keyboard
  518. buffer prior to Implosion.)    
  519.  
  520.  
  521. Four quick points on Imploding Control:
  522.  
  523.     * - You can set an implosion at any time, even from within
  524. another implosion.  Thus, you can continually "chain-set" 
  525. implosions and always know full control will be restored in, say,
  526. 30 seconds, or 90 seconds, or whatever amount you choose.
  527.  
  528.     * - All functions of FULLVIEW know that they're in the
  529. middle of an Implosion Control event and will continue to provide
  530. correct information and messages.  (One Example:  After Imploding
  531. Control in the middle of a program that had changed the keyboard
  532. Interrupt 9, you use the "I" function of FULLVIEW to retrieve the
  533. current vector address for Interrupt 9.  FULLVIEW will provide
  534. you with the current interrupt vector address values that it has
  535. placed in that vector so as to provide you control AND the
  536. previous vector address of Interrupt 9 as it existed before
  537. control was imploded.  And, if you elect to change a relevant
  538. interrupt vector (like Int. 21H, the DOS interrupt), FULLVIEW
  539. will ask you if you would like the change to survive the return
  540. from implosion, or if you only want that change to live as long
  541. as FULLVIEW is in control.)  (A Second Example: If you view the
  542. entire interrupt table during an implosion,  FULLVIEW will put an
  543. asterisk next to any interrupt that was different prior to the
  544. implosion.)
  545.  
  546.     * - When the tone sounds alerting you that FULLVIEW has
  547. taken control, you do not have to access FULLVIEW if you do not
  548. want to.  Simply touch any key other than Control-V and the
  549. program will continue on normally.
  550.  
  551.     * - FULLVIEW is smart, and it knows the tricks of the trade 
  552. (it has even invented a few).  If you're having trouble with a
  553. program, set the Implode Control feature for a bit longer, say,
  554. two minutes.  If there's a way to get you control, and open up
  555. the system for you, FULLVIEW will do it -- and, of course, the
  556. executing program will never know that it's been done.  So
  557. experiment for yourself!   
  558.  
  559.  
  560. IX.  A WORD ABOUT MODES AND PRIVILEGE. 
  561.  
  562.  
  563.      If FULLVIEW detects that you are not operating in real mode,
  564. (say by virtue of the DOS program EMM386, or perhaps you're using
  565. a debugger in virtual mode), FULLVIEW will, each time you access
  566. it, confirm its privilege level through system reads.
  567.  
  568.      Should FULLVIEW detect that the privilege level is
  569. insufficient to allow access beyond the memory allotted memory,
  570. FULLVIEW will sound a tone and display the message:
  571.  
  572.      Insufficient O/S privilege for extended memory viewing.
  573.                     Attempt to override? (Y/N)
  574.  
  575.      If you respond with a "No," FULLVIEW will behave as if it
  576. was installed on an 8088 based machine and not allow extended
  577. memory viewing and will wrap-around on memory addresses (a note -
  578. if the A20 Gate is open, FULLVIEW will still allow viewing of the
  579. HMA).   However, if you elect to override, FULLVIEW will continue
  580. to attempt to access all memory (even the portion that the
  581. operating system is denying access to).  If FULLVIEW is
  582. attempting to read a portion of memory that the operating system
  583. (through monitoring of the C.P.U. in protected mode) is
  584. prohibiting, the message "PRIVILEGE ERROR" will appear in the
  585. ascii portion of the screen for that specific area in memory.  
  586.  
  587.      But remember, if you are operating in virtual-86 mode, you
  588. will see FULLVIEW's code twice, once in the conventional memory
  589. area and once in the extended memory area -- BUT IT'S THE SAME
  590. MEMORY!  The capabilities of the 386 processor are re-mapping the
  591. extended memory area to conventional memory addresses.  (In fact,
  592. you're not supposed to be able to see memory areas outside of
  593. what the processor has re-mapped for you, much less change it --
  594. but this is one of the wonders of FULLVIEW).   So experiment for
  595. yourself, and with the knowledge that FULLVIEW will, more often
  596. than not, let you see both where the code that you are viewing
  597. ACTUALLY resides, and where it APPEARS to reside -- and you can
  598. monitor, alter, and work with either, or both, areas along with
  599. the rest of your memory.
  600.  
  601.  
  602.  
  603. X.  CHANGING FULLVIEW'S SETTINGS
  604.  
  605.  
  606.     FULLVIEW.CFG is the configuration file for FULLVIEW.  You do
  607. not have to use this file nor does it even have to exist. 
  608. However, FULLVIEW will look for it in the default directory when
  609. it installs itself. 
  610.  
  611.     FULLVIEW.CFG is a small text file that may have three
  612. settings in it:  one for changing the hotkey, the next for
  613. excluding ports from being read by FULLVIEW for those rare
  614. systems that have a problem in that area, and the third setting
  615. tells FULLVIEW to install itself already in LCD mode.  These
  616. settings should, for example, appear as follows:
  617.  
  618.  
  619.                   hotkey=k
  620.                   port=0123,02A4
  621.                   machine=lcd
  622.  
  623.  
  624.     Having these three setting like this would result in the
  625. hotkey being CTRL+K, the ports number 0123 and 02A4 would not be
  626. read by FULLVIEW, and FULLVIEW would install itself already in
  627. LCD mode.  You may exclude up to 14 ports and you may pick any of
  628. the 26 letters as a hotkey.
  629.  
  630.      You may not specify whether FULLVIEW installs itself as a
  631. color or a monochrome configuration -- you must do this manually,
  632. or if you prefer, include the parameters /C or /M in a batch file
  633. and run it from there.
  634.  
  635.  
  636.  
  637. XI.  TROUBLE SHOOTING FULLVIEW
  638.  
  639.      Hopefully, you won't have to.  But if you do, there is most
  640. likely an easy way to correct what ever problem you might have. 
  641. If worst comes to worst, contact the distributor from whom you
  642. purchased FULLVIEW, and they will help you with any unique
  643. problems that you may have encountered.  Problems with FULLVIEW
  644. are not common, however the following may help if you do run into
  645. one:
  646.  
  647.  
  648. Problem -- When I hotkey into a certain application, the screen
  649. goes crazy with gibberish.
  650.  
  651. Solution -- Some programs will directly alter the video
  652. controller in such a way as to cause a conflict with FULLVIEW's
  653. screen writes.  To overcome this problem, try toggling F5 to put
  654. FULLVIEW into LCD mode (completely black and white), this should
  655. do the trick.
  656.  
  657.  
  658. Problem -- When I scroll through the ports, the system either
  659. locks up or the screen colors go bad.
  660.  
  661. Solution -- One of your ports can not be read from without
  662. causing hardware conflicts.  To remedy this, exclude the
  663. offending port from being read by including the notation
  664. PORT=xxxx (where xxxx is the hexadecimal number of the port) in
  665. the FULLVIEW.CFG file.  Finding the offending port can be a
  666. matter of trial and error, but if the system is hanging, the
  667. highest visible port number is usually the culprit.  For color
  668. problems, the offending port is most likely one of the ports on
  669. your video card -- check the manual that came with the card for
  670. the addresses and try excluding some of those port addresses.  
  671.  
  672.  
  673. Problem -- While running under DesqView, FULLVIEW's colors don't
  674. look right and the keyboard locks up.
  675.  
  676. Solution -- Under a multi-tasking environment such as DesqView,
  677. you should try configuring the operating system to avoid keyboard
  678. conflicts, allow FULLVIEW to use its own colors, and to avoid
  679. sharing of the CPU while operating in the foreground.  If you
  680. continue to have problems under a multi-tasking environment,
  681. please contact your distributor.
  682.  
  683.  
  684.  
  685. XII.  SOME FINAL THOUGHTS AND OTHER THINGS. . . 
  686.  
  687. "LOAD ME HIGH"
  688.  
  689.     DOS 5.0, and some other operating systems, allow some TSRs
  690. and device drivers to be loaded high, meaning above the one
  691. megabyte DOS boundary, but still be available to DOS by remapping
  692. the program to unused address spaces (usually around absolute
  693. address C0000 to F0000 in conventional memory).  If FULLVIEW is
  694. loaded high, you will be able to find it in memory in two places: 
  695. 1)  The "re-mapped" location in conventional memory; and 2) The
  696. "true" location in extended memory.  Scrolling through the
  697. extended memory location that is occupied by FULLVIEW will give
  698. the user an appreciation for the power that FULLVIEW's coding
  699. possesses and its ability to constantly update itself -- even
  700. while in extended memory and utilizing a protected mode
  701. environment.  The easiest way to find FULLVIEW is to search for
  702. the string "F U L L V I E W" (which occurs a couple of times).
  703.  
  704.  
  705. "EXTENDED MEMORY'S TRUE USE"
  706.  
  707.     If you are making use of your extended memory by using disk-
  708. cache software, FULLVIEW will let you see the sectors that your
  709. software is storing.  The same is true for any program that
  710. utilizes extended memory.
  711.  
  712. "LOST DATA"
  713.  
  714.     Ever hung your computer with important, yet unsaved, data
  715. still in RAM?  FULLVIEW might still be able to save it -- even if
  716. it wasn't in memory to begin with!  Of course, if FULLVIEW was in
  717. memory, just hotkey into FULLVIEW, search for a string in the
  718. document, and then write that portion to disk.  You might have to
  719. do a little editing, but probably not as much as you think.  If
  720. FULLVIEW was not in memory, simply put a system disk in the "A"
  721. drive and perform a warm re-boot, then load FULLVIEW and perform
  722. a search for the "lost" document -- the RAM that was holding the
  723. information might have kept it alive during the warm re-boot and,
  724. of course, FULLVIEW can find it and save it for you when
  725. everything else you have swears it's not there at all.
  726.  
  727.  
  728. "CHANGING MEMORY"    
  729.  
  730.     Your CPU is doing something all the time -- even when it's
  731. just sitting there waiting for a keystroke.  And FULLVIEW will
  732. let you watch it -- as it changes!  Try using the "J" command to
  733. jump to 0000:0400 in conventional memory.  You will see at least
  734. two, and occasionally three, bytes continually change -- other
  735. parts of memory can be changing also, just use FULLVIEW to watch
  736. them.  And, as mentioned above, you can even observe FULLVIEW
  737. observing and altering itself since portions of FULLVIEW are
  738. always changing (flying, really).  Of course, to "freeze" the
  739. picture (and dump it to the printer, if you'd like) simply touch
  740. "P".  If you wondered what the changing byte at 0000:0440 was,
  741. it's the Motor Control Time-Out Counter, and the other two were
  742. the clock.    
  743.  
  744.  
  745. "ENCRYPTED PROGRAMS"    
  746.  
  747. Ever get annoyed with a program that only decrypts or
  748. decompresses itself in memory -- so that you can't figure out
  749. what it's doing until it's already done it?  You've probably
  750. already figured out that FULLVIEW is the answer -- just hotkey
  751. into the program after it has decrypted in memory and then write
  752. it to disk in its unencrypted form.  If the program had the
  753. audacity to shut off the keyboard and lock up the BIOS areas
  754. before it decrypts, just use the Implode Control abilities of
  755. FULLVIEW to bust it open anyway.
  756.  
  757.  
  758. "WHAT DO I REALLY HAVE?"
  759.  
  760.     A pet-peeve of mine is the "System Identification and
  761. Information Programs" that tell you everything you have loaded
  762. into memory and how much memory you have.  Not that they're
  763. useless, just that different programs continue to tell me that I
  764. have different things (like an extra 48k of memory at E000:0000
  765. when I know that I don't).  Actually, I know what the problem is
  766. -- it's a little add-on cache board that uses super-fast memory
  767. chips.  But only FULLVIEW will let me look at my memory and then
  768. try to write to it --  the best way in the world to tell if it's
  769. live RAM or just funny-looking ROM, or nothing at all! And for
  770. the software engineer. . . how did that TSR (or some other rogue
  771. program) load itself in memory so that it became "invisible" to
  772. DOS and utility programs?  (But not, of course, to FULLVIEW,
  773. which will find it, view it, change it, and even write it back to
  774. disk for you).  And now, with DOS 5.0's ability to use "empty"
  775. address areas, it becomes even more important to be able to
  776. accurately view your memory.
  777.  
  778.  
  779. "WHAT'S REALLY IN THAT PROGRAM?"    
  780.  
  781.     Everybody has wondered "What makes that program tick?" and
  782. "What's really in that program to see?".  Of course, FULLVIEW is
  783. the answer -- it's a tool that can be used to do almost
  784. anything,from viewing programs, to changing them, to actually
  785. creating them.  FULLVIEW's potential is unlimited.  And what's
  786. more, whatever your favorite software tool is, FULLVIEW will work
  787. right along with it, and complement it, to make your job easier,
  788. quicker, and more productive. 
  789.  
  790.  
  791.  
  792. XI.  CONCLUSION.    
  793.  
  794.      Thank you for licensing my FULLVIEW utility.  If you have
  795. any thoughts on how FULLVIEW can be improved, or if you have
  796. questions of a technical nature, please drop a note to the
  797. distributor, or you can send me an E-Mail message directly.  My
  798. Internet address is PTOULME@GMUVAX.GMU.EDU -- I'll look forward
  799. to hearing from you.
  800.  
  801.  
  802.  
  803.  
  804.                                Patrick A. Toulme 
  805.                                January, 1992 
  806.  
  807.  
  808. PTOULME@GMUVAX         (Bitnet)
  809. PTOULME@GMUVAX.GMU.EDU (Internet)
  810.  
  811.  
  812.  
  813.  
  814.